package com.sinosoft.dsp.platform.components.portal.iteration;

import java.util.List;

import com.sinosoft.dsp.platform.components.IViewBean;
import com.sinosoft.dsp.platform.exception.SinoPlatformException;

/**
 * 迭代ViewBean接口
 * 
 * @param T
 *            迭代数据接口
 * 
 * @author 潘巍（Peter Pan）
 * @since 2011-5-8 上午09:51:07
 */
public interface IIterationViewBean<T extends IIterationObject> extends
		IViewBean {

	/**
	 * 加载数据
	 * 
	 * @return
	 */
	public List<T> load();

	/**
	 * 是否外部加载数据
	 * 
	 * @return
	 */
	public boolean loadFromOutset();

	/**
	 * 判断是否已经加载数据
	 * 
	 * @return
	 */
	public boolean hasLoadFlag();

	/**
	 * 设置重新加载数据
	 */
	public void setReloadFlag();

	/**
	 * 通过ID获得行
	 * 
	 * @param id
	 * @return
	 */
	public T getRow(String id);

	/**
	 * 增加行记录
	 * 
	 * @param row
	 * @throws SinoPlatformException
	 */
	public void addRow(T row) throws SinoPlatformException;

	/**
	 * 增加行记录集
	 * 
	 * @param rows
	 * @throws SinoPlatformException
	 */
	public void addRows(List<T> rows) throws SinoPlatformException;

	/**
	 * 通过ID删除行记录
	 * 
	 * @param id
	 * @throws SinoPlatformException
	 */
	public void delRow(String id) throws SinoPlatformException;

}
